// 对uView的Request请求进行统一配置

// 引入uView的Request方法
import http from '@/uview-ui/libs/request';
import {
	getToken
} from '@/common/util/index.js'


// const BASE_URL = 'https://327337s9l1.oicp.vip/cyQuestionApi/'
const BASE_URL = 'https://question-bank.changyangdt.com/cyQuestionApi'
// const BASE_URL = 'http://192.168.0.109:8911/cyQuestionApi'


http.setConfig({
	header: {
		// "Accept": "application/json;charset=UTF-8"
	},
	baseUrl: BASE_URL,
	// showLoading: false, // 是否显示请求中的loading
	withCredentials: true,
	// loadingText: '正在加载'
});

// 请求拦截部分，如配置，每次请求前都会执行
http.interceptor.request = (config) => {
	//用户cookies
	if (getToken()) {
		// config.header['Cookie'] = 'SESSION=' + store.getters.cookies + '; Path/;';
		config.header['X-Access-Token'] = getToken();
	} else {
		delete config.header['X-Access-Token'];
	}
	return config;
};

// 响应拦截，如配置，每次请求结束都会执行本方法
http.interceptor.response = (res) => {
	// 1006 代表账号未注册，会返回sessionKey
	// console.log('响应拦截：', res)
	if (res.code === 200) {
		return res;
	} else {
		// await this.$store.dispatch('checkLocalAccount')
		if (res.code === 1003 || res.code === 1005 || res.code === 401) {
			// "您还未登录或登录失效，请重新登录！"

			uni.showToast({
				title: '登录失效，请重新登录1',
				icon: 'none'
			});
			// store.commit('loginOut');
			// uni.clearStorageSync()

			// setTimeout(() => {
			// 	// uni.reLaunch({
			// 	// 	url: '/pages/login/login'
			// 	// })
			// 	const pages = getCurrentPages().pop(); //获取页面栈
			// 	console.log(pages)
			// 	if (pages.route == 'pages/webView1/webView') {
			// 		uni.reLaunch({
			// 			url: `${pages.$page.fullPath}`
			// 		})
			// 	}

			// 	pages.$vm.loginAss = true; //前一个页面方法
			// 	// return
			// 	// console.log(pages, 141414)
			// 	// uni.showModal({1=
			// 	// 	title: '提示',
			// 	// 	content: '这是一个模态弹窗',
			// 	// 	success: function(res) {
			// 	// 		if (res.confirm) {
			// 	// 			 getApp().globalData.loginAss=true
			// 	// 			// appLoginWx()
			// 	// 		} else if (res.cancel) {
			// 	// 			console.log('用户点击取消');
			// 	// 		}
			// 	// 	}
			// 	// });
			// }, 500)


		} else {
			uni.showToast({
				title: res.message,
				icon: 'none'
			});
		}
		return Promise.reject(res);
	}
};

// 根据code获取微信信息，
// 因为此接口携带token请求时，会发送两次请求，
// 所以封装了这个方法，不携带token
export const getWxInfoBuyCode = (code) => {
	return new Promise((resolve, reject) => {
		// uni.showLoading({
		//     mask: true
		// });
		uni.request({
			url: process.env.VUE_APP_URL + '/app/user/third/wx/userInfo/' + code,
			success: (res) => {
				if (res.statusCode === 200) {
					if (res.data.code === 1) {
						resolve(res.data.data);
					} else {
						reject(res);
					}
				} else {
					reject(res);
				}
			},
			fail: (err) => {
				reject(err);
			},
			complete: () => {
				uni.hideLoading();
			}
		});
	});
};

export const getPayResult = (recordId) => {
	return new Promise((resolve, reject) => {
		// uni.showLoading({
		//     mask: true
		// });
		uni.request({
			url: process.env.VUE_APP_URL + `/pay/wx/result/${recordId}`,
			success: (res) => {
				if (res.statusCode === 200) {
					if (res.data.code === 1) {
						resolve(res.data.data);
					} else {
						reject(res);
					}
				} else {
					reject(res);
				}
			},
			fail: (err) => {
				reject(err);
			},
			complete: () => {
				// uni.hideLoading();
			}
		});
	});
};
export const postHttp = (url, data) => {
	return http.post(url, data);
};

export const getHttp = (url, data) => {
	return http.get(url, data);
};

export const putHttp = (url, data) => {
	return http.put(url, data);
};

export const delHttp = (url, data) => {
	return http.delete(url, data);
};
// 上传文件
export const uploadHttp = (url, data) => {
	return http.post(url, data, {
		'content-type': 'multipart/form-data'
	});
};
